.shopPage{
    background:#fff;
    min-height:100vh;
    margin-bottom: 60px;
}
.header{ padding:12px 12px 6px; background:#fff; position:sticky; top:0; z-index:10 }
.title{ text-align:center; font-size:16px; margin-bottom:8px; }
.searchBar{ display:flex; align-items:center; gap:8px; border:1px solid #ff6f3d; border-radius:24px; padding:8px 10px; }
.searchIcon{ color:#999 }
.searchInput{ border:none; outline:none; flex:1; font-size:14px }
.searchBtn{ background:#ff6f3d; color:#fff; border:none; padding:6px 12px; border-radius:18px; font-size:14px }

.bannerWrap{ margin:12px; border-radius:10px; overflow:hidden }
.bannerWrap :global(.adm-swiper){ border-radius:10px; overflow:hidden }
.bannerImg{ width:100%; display:block; height:160px; object-fit:cover }

.assurance{
     display:flex; justify-content:space-between; padding:8px 14px; color:#666;
     background-color: #fdf6e4;
     }
.assuranceItem{ 
    display:flex; align-items:center; gap:6px; font-size:13px 
}
.indimg{
    width: 20px;
    height: 20px;
}
.assuranceItem .dot{
     width:18px; height:18px; border-radius:50%;
      /* background:#ff6f3d; */
       display:inline-block; opacity:.9 
    }

.hGrid{ 
    display:grid; 
    grid-auto-flow: column; 
    grid-auto-columns: 72px; 
    grid-template-rows: repeat(2, 88px); 
    overflow-x:auto; 
    gap:12px 14px; 
    padding:10px 12px; 
    -webkit-overflow-scrolling:touch 
}
.hGrid::-webkit-scrollbar{ display:none }
.hItem{ width:72px; text-align:center }
.hImgWrap{ width:56px; height:56px; border-radius:50%; overflow:hidden; margin:0 auto; background:#f6f6f6 }
.hImgWrap img{ width:100%; height:100%; object-fit:cover }
.hItem p{ margin:6px 0 0; font-size:12px; color:#333; white-space:nowrap }

.dots{ display:flex; justify-content:center; align-items:center; gap:8px; padding:6px 0 }
.dotLine{ width:40px; height:4px; background:#ff6f3d; border-radius:2px }
.dotCircle{ width:8px; height:8px; border-radius:50%; background:#eee }
.dotCircle.active{ background:#ff6f3d }

.sectionTitle{ 
    display: flex;
    justify-content: space-between;
    font-size:18px; font-weight:700; padding:12px 14px 
}
.brandRow{ display:grid; grid-template-columns: repeat(4, 1fr); gap:10px; padding:0 10px 16px }
.brandCard{ background:#fff5f0; border-radius:12px; overflow:hidden; border:1px solid #ffe1d5 }
.brandHeader{ text-align:center; padding:10px 0; font-weight:700; color:#ff6f3d; background:#fff; }
.brandLogoWrap{ display:flex; align-items:center; justify-content:center; padding:16px 8px }
.brandLogo{ width:60px; height:60px; object-fit:contain }

.serviceBtn{ position:fixed; right:12px; bottom:80px; display:flex; align-items:center; gap:8px; background:#1677ff; color:#fff; padding:8px 10px; border-radius:20px; text-decoration:none }
.serviceBtn img{ width:28px; height:28px; border-radius:50% }

.tabsWrap{ background:#fff; margin-top:4px }
.tabsWrap :global(.adm-tabs-header){ position:sticky; top:0; z-index:5; background:#fff }
.goodsGrid{ display:grid; grid-template-columns: repeat(2, 1fr); gap:12px; padding:10px 12px 80px }
.goodsCard{ background:#fff; border-radius:12px; overflow:hidden; border:1px solid #f0f0f0 }
.goodsImgWrap{ width:100%; height:170px; overflow:hidden; background:#fafafa }
.goodsImgWrap img{ width:100%; height:100%; object-fit:cover }
.goodsTitle{ font-size:16px; color:#222; padding:8px 10px 4px; line-height:1.3 }
.goodsTag{ margin-left:10px; display:inline-block; border:1px solid #ff6f3d; color:#ff6f3d; border-radius:6px; padding:2px 6px; font-size:12px }
.goodsPrice{ color:#ff3b30; font-weight:700; font-size:18px; padding:8px 10px 12px }


